package net.aiion.weave;

public class ConvertingClass /*implements Converter*/
{
    public ConvertingClass() {
        // int[] a = new int[2];
        // mv.visitInsn(ICONST_2);
        // mv.visitIntInsn(NEWARRAY, T_INT);
        // mv.visitVarInsn(ASTORE, 1);

        // System.out.println(a[0]);
        // mv.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
        // mv.visitVarInsn(ALOAD, 1);
        // mv.visitInsn(ICONST_0);
        // mv.visitInsn(IALOAD);
        // mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(I)V");

        // a[1] = 42;
        // mv.visitVarInsn(ALOAD, 1);
        // mv.visitInsn(ICONST_1);
        // mv.visitIntInsn(BIPUSH, 42);
        // mv.visitInsn(IASTORE);

        // a[42] = 666;
        // mv.visitVarInsn(ALOAD, 1);
        // mv.visitIntInsn(BIPUSH, 42);
        // mv.visitIntInsn(SIPUSH, 666);
        // mv.visitInsn(IASTORE);

        // Object[][] foo = new Object[3][];
        // mv.visitInsn(ICONST_3);
        // mv.visitTypeInsn(ANEWARRAY, "[Ljava/lang/Object;");
        // mv.visitVarInsn(ASTORE, 2);

        // System.out.println(foo[5]);
        // mv.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
        // mv.visitVarInsn(ALOAD, 2);
        // mv.visitInsn(ICONST_5);
        // mv.visitInsn(AALOAD);
        // mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/Object;)V");

        this(2);
        // mv.visitVarInsn(ALOAD, 0);
        // mv.visitInsn(ICONST_2);
        // mv.visitMethodInsn(INVOKESPECIAL, "net/aiion/weave/ConvertingClass", "<init>", "(I)V");
    }

    public ConvertingClass(final int a) {
    }

    // @Converts(String.class)
    // public boolean booleanToString(ConverterContext aConverterContext) {
    // return Boolean.valueOf((String) aConverterContext.getSourceValue());
    // }
    //
    // @Override
    // public Object convertValue(final ConverterContext aConverterContext) {
    // if (String.class.isAssignableFrom(aConverterContext.getSourceType())
    // && boolean.class.isAssignableFrom(aConverterContext.getTargetType()))
    // {
    // return booleanToString(aConverterContext);
    // }
    //
    // return aConverterContext.forwardConversion();
    // }
}
